#ifndef __WEATHER_H
#define __WEATHER_H

#include "app.h"


typedef	union
{
	char str[4];
	uint val;
}IconId;

typedef struct
{
	IconId id;
	const void *icon64;
	const void *icon96;
	const void *icon128;
	const void *icon192;
	const void *icon256;
}IconIdPair;
typedef struct{
        float coord_lon;//City geo location, longitude
        float coord_lat;//City geo location, latitude

        int weather_id0;// Weather condition id
        const char *weather_main0;//Group of weather parameters (Rain, Snow, Extreme etc.)
        const char *weather_description0;//Weather condition within the group
        const char *weather_icon0;// Weather icon id

        int weather_id1;// Weather condition id
        const char *weather_main1;//Group of weather parameters (Rain, Snow, Extreme etc.)
        const char *weather_description1;//Weather condition within the group
        const char *weather_icon1;// Weather icon id


        //
        float  main_temp;//温度。单位默认值：开尔文，公制：摄氏度，英制：华氏度。
        int  main_pressure;//大气压力（在海平面，如果没有sea_level或grnd_level数据），hPa
        int  main_humidity;//湿度，％
        float  main_temp_min;//目前的最低温度。这是大城市和地理位置扩展的特大城市可能的当前温度的偏差（可选地使用这些参数）。单位默认值：开尔文，公制：摄氏度，英制：华氏度。
        float  main_temp_max;//目前的最高温度。这是大城市和地理位置扩展的特大城市可能的当前温度的偏差（可选地使用这些参数）。单位默认值：开尔文，公制：摄氏度，英制：华氏度。
        long  dt;//时间戳
        int  timezone; //时区，时间戳
        const char *name;
}Weather_cur;
typedef struct
{
	uint datetime;
	union
	{
	    struct
	    {
	        uint16_t temp;
	        uint16_t rainsnow;
	    };
		struct
		{
	        uint16_t tempMin;
	        uint16_t tempMax;
		};
	}value;
	IconId icon;
}Weather_Forecast;

typedef struct{
    float temperature;
    float pressure;
    float humidity;
    float tvoc;
    float co2;
}weather_indoor_t;

void weather_create(lv_obj_t *obj, lv_event_t event);
void weather_sync(void *data);
void weather_draw(void);

#endif
